import cv2

# cap = cv2.VideoCapture(0)  # 使用默认相机(使用此方法如果因为兼容性问题无法打开相机，可以改写下面方式)
cap = cv2.VideoCapture(0, cv2.CAP_DSHOW)

if not cap.isOpened():
    print("Cannot open camera")
    exit()

# 设置帧宽度和帧高度
cap.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
# 设置帧率，值通常是一个浮点数，表示每秒的帧数
cap.set(cv2.CAP_PROP_FPS, 30)

while True:
    ret, frame = cap.read()  # ret是布尔值，frame是视频的一帧
    if not ret:
        print("无法获取画面，检查相机是否正确连接")
        break
    frame = cv2.flip(frame, 1)  # 水平翻转图像，参数1代表水平翻转图像，而0代表垂直翻转图像
    cv2.imshow(
        "Video", frame
    )  # 显示画面(灰度处理frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY))

    if cv2.waitKey(1) & 0xFF == ord("q"):  # 如果按下 'q' 键则退出循环
        break

cap.release()  # 释放相机资源
cv2.destroyAllWindows()  # 销毁所有窗口
